小编典典

推荐使用哪种 Python 内存分析器?

all

我想知道我的 Python 应用程序的内存使用情况,特别想知道哪些代码块/部分或对象消耗了最多的内存。谷歌搜索显示一个商业版本是Python Memory
Validator
(仅限
Windows)。

开源的是PySizerHeapy

我没有尝试过任何人,所以我想知道哪个是最好的考虑:

  1. 提供大部分细节。

  2. 我必须对我的代码做最少的更改或不做任何更改。


阅读 203

收藏
2022-03-03

共1个答案

小编典典

guppy3使用起来非常简单。在您的代码中的某个时刻,您必须编写以下内容:

from guppy import hpy
h = hpy()
print(h.heap())

这会给你一些像这样的输出:

Partition of a set of 132527 objects. Total size = 8301532 bytes.
Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
0  35144  27  2140412  26   2140412  26 str
1  38397  29  1309020  16   3449432  42 tuple
2    530   0   739856   9   4189288  50 dict (no owner)

您还可以找出引用对象的位置并获取有关它的统计信息,但不知何故,有关的文档有点稀疏。

还有一个图形浏览器,用 Tk 编写。

对于 Python 2.x,请使用Heapy

2022-03-03